package com.xoms.front.service;

import com.xoms.front.controller.res.ListResult;
import com.xoms.front.controller.res.bean.*;
import com.xoms.front.controller.springmvc.req.*;
import com.xoms.front.model.AccountBean;
import com.xoms.front.service.res.PageResult;

/**
 * Created with IntelliJ IDEA.
 * User: tzz(Tian)
 * Date: 2018/5/25 14:55
 */
public interface RoomService {
    /**
     * @Description:   getRoomDimensions 获取维度分类信息
     * @author:        tzz
     * @Param:         []
     * @Return:        com.xoms.admin.service.res.PageResult<com.xoms.admin.controller.res.bean.RRoomDimensionBean>
     * @Date:          2018/4/28 12:33
     */
    PageResult<RRoomDimensionBean> getRoomDimensions();

    /**
     * @Description:   getDetails 获取维度详细列表
     * @author:        tzz
     * @Param:         [param ]
     * @Return:        com.xoms.admin.controller.res.ListResult<com.xoms.admin.controller.res.bean.RRoomDimensionDetailBean>
     * @Date:          2018/4/29 22:44
     */
    ListResult<RRoomDimensionDetailBean> getDimensionDetails(GetRoomDimensionDetailsParam param);

    /**
     * 获取状态列表
     * @return
     */
    ListResult<RRoomStatusListBean> getRoomStatusList(String scales);

    /**
     * 影厅列表
     * @param param
     * @return
     */
    ListResult<RRoomListBean> getRoomList(GetRoomListParam param);

    ListResult<RFilmListBean> getFilmList(GetFilmListParam param);

    RUserInfoBean getUserInfoByCard(GetUserInfoByCardParam param);
    RUserInfoBean getUserInfoByTel(GetUserInfoByTelParam param);

    String roomLock(AccountBean account, RoomLockParam param);
    void roomUnLock(AccountBean account, RoomLockParam param);

    ROrderInfoBean createOrder(AccountBean account, CreateOrderParam param);

    ROrderInfoBean createTimeOrder(AccountBean account, CreateTimeOrderParam param);

    ROrderInfoBean createChangeOrder(AccountBean account, CreateChangeOrderParam param);

    ROrderInfoBean setOrderAuthPirce(EditOrderAuthPriceParam param);

    Boolean roomOpen(RoomOpenParam param);

    RRoomInfoBean getRoomInfo(GetByIdParam param);

    ListResult<RRoomBookInfoBean> getRoomBookList(GetByIdParam param);

    ROrderPayBean orderPayWay(RoomOrderPayWayParam param);
}
